package main
import ("fmt"
        "strconv"
	    "strings")
func main(){
	//len(str) - 统计字符串长度
	str := "golang你好"//golang中，汉字是utf-8字符集，一个汉字3个字节
	fmt.Println(len(str)) //12

	//字符串遍历
	//1>：for range键值循环
	for i ,value := range str{
		fmt.Printf("索引为:%d,具体的值为： %c \n",i,value)
	}
	//2>:利用r:=[]rune(str)
	r :=[]rune(str)
	for i := 0;i<len(r);i++{
		fmt.Printf("%c \n",r[i])
	}

	//字符串转整数
	//n,err := strconv.Atoi("66")
	num1,_ := strconv.Atoi("66")
	fmt.Println(num1)

	//整数转字符串
	str1 := strconv.Itoa(33)
	fmt.Println(str1)

	//查找子串是否在指定的字符串里
	result:=(strings.Contains("javaandgolang", "go"))
	fmt.Println(result) //true

	//统计一个字符串有几个指定的子串:
	count := strings.Count("golangandjavga","ga")
	fmt.Println(count) //2

	//不区分大小写的字符串比较
	flag := strings.EqualFold("go","GO")
	fmt.Println(flag) //true
    //区分大小写的比较
	fmt.Println("hello"=="HEllo") //false

	//返回子串在字符串中第一次出现的索引值，如果没有返回-1
	fmt.Println(strings.Index("golangandjava","ga")) //5

	//字符串的替换
	str2 := strings.Replace("goandjavagogo","go","golang",-1)
	str3 := strings.Replace("goandjavagogo","go","golang",2)
	fmt.Println(str2) //golangandjavagolanggolang
	fmt.Println(str3) //golangandjavagolanggo

	//按照指定的某个字符，为分割标识，将一个字符串拆分成字符串数组
	arr := strings.Split("go-python-java","-")
	fmt.Println(arr) //[go python java]

	//将字符串的字母进行大小写转换
	fmt.Println(strings.ToLower("GO")) //go
	fmt.Println(strings.ToUpper("go")) //GO

	//将字符串左右两边的空格去掉
	fmt.Println(strings.TrimSpace("   go and java  ")) //go and java

	//将字符串左右两边指定的字符去掉：
	fmt.Println(strings.Trim("~golang~","~")) //golang

	//将字符串左边指定的字符去掉：
	fmt.Println(strings.TrimLeft("-golang-","-"))//golang-

	//将字符串右边指定的字符去掉：
	fmt.Println(strings.TrimRight("-golang-","-"))//-golang

	//判断字符串是否以指定的字符串开头：
	fmt.Println(strings.HasPrefix("http://golang.com","http")) //true
	
	//判断字符串是否以指定的字符串结尾
	fmt.Println(strings.HasSuffix("demo.png","jpg")) //false
}